#pragma GCC optimize(2)
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <map>
#include <vector>

using namespace std;
using LL = long long;
const int N = 2e5 + 10;

/*
错误原因：没有看清第i个人有i元

首先发现一个单调性，越少的人越容易满足条件，可以考虑使用二分来简化
假设要加入的那个人排在第i位，因此前面有i-1个人后面有cnt-i个人
因此满足b[i] >= i -1 && a[i] >= cnt - i  ====>       cnt - a[i] <= i <= b[i] + 1
很容易看出贪心
越早加入后面的越容易满足
得解
*/
int n;
int a[N], b[N];

bool check(int cnt){
	int res = 1;
	for(int i = 1; i <= n; i ++){
		if(cnt - a[i] <= res && res <= b[i] + 1){
			res ++;
		}
	}

	return res - 1 >= cnt;
}

void solve(){
	cin >> n;
	for(int i = 1; i <= n; i ++) cin >> a[i] >> b[i];

	int l = 1, r = n;
	while(l < r){
		int mid = l + r + 1 >> 1;
		if(check(mid)) l = mid;
		else r = mid - 1;
	}
	cout << l << '\n';
}

int main(){
	freopen("in.txt", "r", stdin);
	freopen("out.txt", "w", stdout);
	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	int T;
	cin >> T;
	while(T--){
		solve();
	}
	return 0;
}